Python Examples
Example for scraping all redemption events:
import requests
import csv
import time
from requests_oauth2client import OAuth2Client, OAuth2ClientCredentialsAuth
def get_instruments_csv():
start_time = time.time()
oauth2client = OAuth2Client(
token_endpoint="https://a-api-sso.vontobel.com/auth/realms/ext-api/protocol/openid-connect/token",
auth=("<fill this in>", "<fill this in>"),
)
auth = OAuth2ClientCredentialsAuth(
oauth2client
)
with open('redemption_de_events.csv', 'w', newline='') as csvfile:
fieldnames = ['isin', 'event', 'name']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
url = 'https://structured-products-reference-data.a-api.vontobel.com/v1/instruments/events?eventType=repayment&legalCountry=DE'
more = True
while (more):
print(f"scraping {url}")
nexturl, count = get_and_write_batch(url, writer, auth)
if (count == 0):
more = False
else:
url = f'https://structured-products-reference-data.a-api.vontobel.com{nexturl}'
print("--- Full scrape: %s seconds ---" % (time.time() - start_time))
def get_and_write_batch(url, writer, auth):
r = requests.get(url, auth=auth)
json = r.json()
count = 0
for instrumentEvent in json['events']:
count = count + 1
instrument = instrumentEvent['instrument']
isin = [i for i in instrument['identifiers'] if i['type'] == 'isin'][0]
writer.writerow({'isin': isin['value'], 'event': instrumentEvent['event']['type'], 'name': instrument['name']})
return (json['links']['next'], count)
if __name__ == '__main__':
get_instruments_csv()